<!DOCTYPE html> 
<html>
<head>
<title>Skyline75489</title>
<meta charset='utf-8'>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" href="../static/styles/github.css">
<link rel="stylesheet" href="../static/post.css">
</head>
<body>

<div class="wrapper">
<div class="header">
	<span class="blog-name">Skyline75489</span>

<a class="nav" href="../index.html">Home</a>
<a class="nav" href="about.html">About</a>
</div>
<div class="content">

<h1>iTerm2新手技巧</h1>
<p>以前用Linux时只用过Gnome Terminal之类的终端模拟器，很喜欢它的标签页功能，觉得对工作效率提升特别有帮助。当时感觉像Guake那种下拉式终端，同时还支持标签页等功能，已经很炫酷了。直到我遇见了iTerm2，不夸张的说，我真的被它强大的功能震惊了。这货简直把终端的玩法提升到了一个新高度。废话少说，来看看它有哪些给力的使用技巧。</p>
<h3>快捷键</h3>
<h4>窗口操作</h4>
<ul>
<li>新建窗口：Command + N</li>
<li>关闭窗口：Shift + Command + W</li>
<li>窗口之间切换<ul>
<li>前一个窗口： Command + `</li>
<li>后一个窗口：Command + ~ </li>
<li>进入窗口1，2，3...： Option + Command + 窗口编号</li>
</ul>
</li>
</ul>
<h4>标签页操作</h4>
<ul>
<li>新建标签页：Command + T</li>
<li>关闭标签页： Command + W</li>
<li>标签页之间切换<ul>
<li>前一个标签页： Command + 左方向键，Shift + Command + [ </li>
<li>后一个标签页： Command + 右方向键，Shitf + Command + ]</li>
<li>进入标签页1，2，3...：  Command + 标签页编号</li>
</ul>
</li>
<li>Expose 标签页： Option + Command + E（将标签页打撒到全屏，并可以全局搜索所有的标签页）</li>
</ul>
<h4>面板操作</h4>
<ul>
<li>垂直分割：Command + D</li>
<li>水平分割： Shift + Command + D</li>
<li>面板之间切换 <ul>
<li>前一个面板： Command + [</li>
<li>后一个面板： Command + ]</li>
<li>切换到上/下/左/右面板：Option + Command + 上下左右方向键</li>
</ul>
</li>
</ul>
<p>有了面板分割功能，你可以把终端搞成这样：</p>
<p><img src="../img/iterm-usage/iterm1.png" alt="分割"></p>
<p>看起来很像是Vim的分屏功能，但是使用范围更广了。</p>
<h4>其他操作</h4>
<ul>
<li>支持自定义全局快捷键用于显示和隐藏iTerm2</li>
</ul>
<p>Preference -&gt; Keys</p>
<p><img src="../img/iterm-usage/iterm2.png" alt="全局"></p>
<ul>
<li>进入和退出全屏：Command + Enter</li>
<li>查看当前终端中光标的位置：Command + /</li>
<li>命令自动补全：Command + ;（很少用这个，还是感觉Zsh的补全更好用）</li>
<li>开启和关闭背景半透明：Command + u</li>
<li>清屏（重置当前终端）：Command + r</li>
</ul>
<h3>特色功能</h3>
<h4>文本选取</h4>
<p>文本选取有<strong>使用鼠标</strong>和<strong>不使用鼠标</strong>两种方式。</p>
<p><strong>使用鼠标</strong>：默认情况下，选取的文字会自动复制到剪切板，可以使用以下方式进行文本选取：</p>
<ul>
<li>常见的点击并拖拽方式</li>
<li>双击选取整个单词</li>
<li>三击选取整行</li>
<li>选取某一部分，按住Shift，再点击某处，可以选取整个矩形内的文本（类似Windows下按住Shift可以批量选取图标）</li>
<li>按住Command + Option，可以用鼠标画出一个矩形，用类似截图的方式选取文本</li>
</ul>
<p>另外，还可以使用鼠标完成以下操作：</p>
<ul>
<li>按住Command然后点击某个URL，会在浏览器中打开这个URL，点击某个文件夹，会在Finder里打开这个文件夹（再也不用open . 啦），点击某个文件名，会打开这个文件（文本文件支持MacVim，TextMate和BBEdit，如果后面跟随一个冒号和行号，文件会在行号处打开，其它格式的文件似乎不能调用默认程序打开）</li>
<li>选取文本之后，按住Command 同时拖动文本，可以将文本粘贴到目标位置（Drag and Drop）</li>
<li>鼠标中键粘贴（这个太感人了，一下子找回Linux的感觉了）</li>
</ul>
<p><strong>不使用鼠标</strong>：(这种方式最多只能选取一行文本) 使用 Command + f，会呼出一个搜索框，可以在当前面板中进行搜索，输入想要选取的部分内容，输入过程中，按Tab可以将选取部分向右扩展，按Shift + Tab向左扩展，按回车转到下一个匹配位置。使用Tab或Shift+Tab扩展得到想要的内容之后，选取内容会自动复制到剪切板，再次按Command + f隐藏搜索框。</p>
<p><img src="../img/iterm-usage/iterm3.png" alt="搜索"></p>
<p>此外，点击搜索框最左边的放大镜按钮，可以选择搜索匹配方式（忽略大小写和正则表达式）。</p>
<h4>位置书签</h4>
<p>在当前会话中按Command + Shift + m可以保存当前位置，之后可以按Command + Shift + j跳回这个位置。</p>
<h4>粘贴历史</h4>
<p>使用Command + Shift + h 可以呼出粘贴历史，支持模糊检索。还可以设置将粘贴历史保存在磁盘上（Preferences -&gt; General）</p>
<p><img src="../img/iterm-usage/iterm5.png" alt="粘贴历史"></p>
<h4>即时回放</h4>
<p>使用 Command + Opt + b 打开即时回放，按Esc退出。即时回放可以记录终端输出的状态，让你“穿越时间”查看终端内容。默认每个会话最多储存4MB的内容，可以在设置中更改（Preferences -&gt; Genernal -&gt; Instant Replay）。</p>
<p><img src="../img/iterm-usage/iterm4.png" alt="即时回放"></p>
<h4>窗口状态</h4>
<p>通过 Window -&gt; Save Window Arrangement 可以保存当前窗口状态的快照，包括打开的窗口，标签页和面板。通过 Window -&gt; Restore Window Arrangement 还原。还可以在 Preferences -&gt; General -&gt; Open saved window arrangement 中设置在启动iTerm2时自动恢复窗口状态</p>
<h3>总结</h3>
<p>看了这么多，想必你对iTerm2的强大功能已经有所了解。iTerm2的功能远不是一篇文章能介绍完的，有兴趣的可以去查看它的官方文档。我也是一边学习，一边完成了这篇博文。</p>
<p>外有iTerm2强大的会话管理，内有Zsh各种爽快的跳转和补全，妈妈再也不用担心我的终端不好用啦！</p>


</div>
</div>
<script src="../static/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</body>

</html>
